Problem s ORDER BY u Firebird

Otázka od: Radim Hradecky

23. 9. 2004 21:23

Dobry den,

            Provadim konverzi programu z MySQL na Firebird v Delphi a
narazil sem na problem s ORDER BY. Pouzivam Firebird 1.5 Dialect 3. Puvodni
dotaz vypada zhruba takto (podstatne je tucne):

 

SELECT "User_ID",SUM("DelkaPobytu") AS sum_time

 FROM "trzba"

WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
"User_ID" ORDER BY sum_time DESC

 

FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu dat
najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v historii
sem nic nenasel.

 

Dekuji za pomoc

S pozdravem Radim Hradecky
 
 


Odpovedá: Jiri Cincura

23. 9. 2004 21:33

Radim Hradecky wrote:
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
> dat najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
> historii sem nic nenasel.

Zkus to dat do uvozovek/apostrofu.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net


Odpovedá: Radim Hradecky

23. 9. 2004 21:37

To sem prave myslel tim ze sem zkousel lecos, kdyz dam uvozovky bere to take
jako sloupec a kdyz apostrof tak jako retezec  

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Jiri Cincura
Sent: Thursday, September 23, 2004 10:33 PM
To: delphi-l@clexpert.cz
Subject: Re: Problem s ORDER BY u Firebird

Radim Hradecky wrote:
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
> dat najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
> historii sem nic nenasel.

Zkus to dat do uvozovek/apostrofu.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net




Odpovedá: Jiri Semler

23. 9. 2004 21:47


>SELECT "User_ID",SUM("DelkaPobytu") AS sum_time
>
> FROM "trzba"
>
>WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
>("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
>"User_ID" ORDER BY sum_time DESC
>
>
>FB hlasi ze sum_time neni nazev sloupce,
>
Staci upravit : ORDER BY SUM("DelkaPobytu")

Jiri Semler


Odpovedá: Tomas Bradle

23. 9. 2004 21:59


Dej tam: ORDER BY 2

Tomas Bradle
t.bradle@worldonline.cz


----- Original Message -----
From: "Radim Hradecky" <radim.hradecky@seznam.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, September 23, 2004 10:12 PM
Subject: Problem s ORDER BY u Firebird


> Dobry den,
>
> Provadim konverzi programu z MySQL na Firebird v Delphi a
> narazil sem na problem s ORDER BY. Pouzivam Firebird 1.5 Dialect 3.
Puvodni
> dotaz vypada zhruba takto (podstatne je tucne):
>
>
>
> SELECT "User_ID",SUM("DelkaPobytu") AS sum_time
>
> FROM "trzba"
>
> WHERE ("Datum">='2004-09-01' AND "Datum"<'2004-10-01' AND "Cena">0 AND
> ("Tarif"='Gamestar' OR "Tarif"='Registrovan') AND "User_ID">-1) GROUP BY
> "User_ID" ORDER BY sum_time DESC
>
>
>
> FB hlasi ze sum_time neni nazev sloupce, coz je Pravda, ale nevim jak mu
dat
> najevo ze nejde o sloupec ale soucast toho AS. Zkousel sem lecos, v
historii
> sem nic nenasel.
>



Odpovedá: Radim Hradecky

23. 9. 2004 22:23

>Dej tam: ORDER BY 2
>
>Tomas Bradle
>t.bradle@worldonline.cz

Skvele, diky, to zabralo. Jen pro uplnost, dat tam misto toho
SUM("DelkaPobytu") take neslo.

S pozdravem Radim Hradecky




Odpovedá: Martin Pisarik

24. 9. 2004 8:56

FireBird neumi aliasy sloupcu v klauzuli ORDER BY. Mimochodem to je taky
hlavni duvod proc jsem musel zustat u MySQL. Podoporovany jsou vsak cisla
sloupcu, traba ORDER BY 2 atd. coz se muze hodit.
Dalsi vec, na kterou si dej pri prechodu MySQL->FB pozor je JOIN. V jednom
dotazu musis bud vsechny tabulky spojit JOINy a nebo ve WHERE, ale nesmis to
kombinovat. Pak to VUBEC nefunguje a bude to vracet nesmysly! Ja v jednom
svem projektu generuju dotazy programove a pouzivam vyse uvedenou kombinaci
JOIN a WHERE a proto jsem zjsitil, ze migrace MySQL to FB u hotoveho
projektu by byla narocnejsi, tak jsem od toho prozatim upustil...